home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue26 / tiptrix / LISTING1.PAS next >
Encoding:
Pascal/Delphi Source File  |  1997-08-18  |  439 b   |  14 lines

  1. function(date: TDateTime, months): TDateTime;
  2. var
  3.   yyyy,mm,dd,ddmax: word;
  4.   date2: TDateTime;
  5. begin
  6.   DecodeDate(date,yyyy,mm,dd);
  7.   mm := mm + months;  // months can be negative
  8.   while mm > 12 do begin dec(mm,12); inc(yyyy); end;
  9.   while mm < 1  do begin inc(mm,12); dec(yyyy); end;
  10.   ddmax := DecodeDate(EncodeDate(yyyy,mm+1,1)-1,yyyy,mm,ddmax);
  11.   if ddmax < dd then dd := ddmax;
  12.   Result := EncodeDate(yyyy,mm,dd);
  13. end;
  14.